'''''
1.输入用户名，判断用户名是否合法(用户名长度6~10位)
2.输入用户名，判断用户名是否合法(用户名中只能由数字、字母或数字和字母组成)
例如: 'abc' —> 合法   '123' —> 合法   'abc123a' —> 合法
3.输入用户名，判断用户名是否合法(用户名必须包含数字和字母，并且第一个字符必须是大写字母)
例如: 'abc'—> 不合法   '123' —> 不合法   'abc123' —> 不合法   'Abc123ahs' —> 合法
4.输入一个字符串，将字符串中所有的数字字符取出来产生一个新的字符串
例如：输入'abc1shj23kls99+2kkk' 输出：'123992’
5.输入一个字符串，将字符串中所有的小写字母变成对应的大写字母输出
例如: 输入'a2h2klm12+' 输出 'A2H2KLM12+'
6.输入一个小于1000的数字，产生对应的学号
例如: 输入'23'，输出'py1901023';输入'9', 输出'py1901009' ;输入'123'，输出'py1901123'
7.输入一个字符串，统计字符串中非数字和非字母的字符的个数
例如: 输入'anc2+93-sj胡说'输出:4 ;输入'===' 输出:3
8.找出100以内的所有素数（一个大于1的自然数，除了1和它自身外，不能被其他自然数整除的数叫做素数）
9.如果两个素数之差为2, 这样的两个素数就叫作"孪生数", 找出100以内的所有"孪生数"
10.随机生成一个 100 以内的整数，玩家共有 10 次机会开始游戏，输入猜测的数字。
如果猜小了，则提示:猜小了
如果猜大了，则提示:猜大了
猜对了，则提示:猜对了，并且结束游戏
10 次机会用完还没猜对，提示:游戏结束，没有猜到。
11.让用户输入姓名,如果姓名已经存在,提示用户,如果姓名不存在,继续输入年龄,并存入列表里
12.利用while循环,计算1-100之间数字的累加和,计算1-100之间偶数的累加和,计算1-100之间奇数的累加和
13.字符分类统计，输入一个字符串，分别统计字母、数字、下划线、其他字符的统计结果
13.打印一个99乘法表
14.计算一个正整数n的阶乘
15.生成一个一百以内的斐波那契数列数列
斐波那契数列（Fibonacci sequence）是一个每一项都是前两项和的数列，通常从 0 和 1 开始。数列的前几项是：0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...

'''''
# 1.输入用户名，判断用户名是否合法(用户名长度6~10位)
# username = input("请输入用户名:")
# if 6 <= len(username) <= 10:
#     print("用户名合法")
# else:
#     print("用户名长度必须在6到10位之间")

# 2.输入用户名，判断用户名是否合法(用户名中只能由数字、字母或数字和字母组成)
# username = input('请输入用户名：')
# for x in username:
#     if not ('a' <= x <= 'z' or 'A' <= x <= 'Z' or '0' <= x <= '9'):
#         print('用户名不合法')
#         break
# else:
#     print('用户名合法')
    
# 3.输入用户名，判断用户名是否合法(用户名必须包含数字和字母，并且第一个字符必须是大写字母)
username = input("请输入用户名:")
if not 'A' <= username[0] <= 'Z':
    print('用户名不合法')
else:
    for x in username[1::]:
        if not ('a' <= x <= 'z' or 'A' <= x <= 'Z' or '0' <= x <= '9'):
            print('用户名不合法')
            break
        else:
            print('用户名合法')

# 4.输入一个字符串，将字符串中所有的数字字符取出来产生一个新的字符串
# str1 = input("输入一个字符串:")
# new_str1 = []
# for x  in str1:
#     if '1' <= x <= '9' :
#         new_str1.append(x)
# print(new_str1)

# 5.输入一个字符串，将字符串中所有的小写字母变成对应的大写字母输出
# str1 = input("输入一个字符串:")
# new_str1 = []
# for   x  in str1:
#     if 'a' <= x <= 'z' :
#         x = chr(ord(x)-32)
#         new_str1.append(x)
# print(new_str1)

# # 6.输入一个小于1000的数字，产生对应的学号
# # 例如: 输入'23'，输出'py1901023';输入'9', 输出'py1901009' ;输入'123'，输出'py1901123'
# num = int(input("输入一个小于1000的数字:"))
# print(f'py1901{num:03d}')



# 7.输入一个字符串，统计字符串中非数字和非字母的字符的个数
# 例如: 输入'anc2+93-sj胡说'输出:4 ;输入'===' 输出:3
# str1 = input("输入一个字符串:")
# new_str1 = []
# for x  in str1:
#     if not ('a' <= x <= 'z' or 'A' <= x <= 'Z' or '0' <= x <= '9'):
#         new_str1.append(x)
# print(len(new_str1))


# 8.找出100以内的所有素数（一个大于1的自然数，除了1和它自身外，不能被其他自然数整除的数叫做素数）
# sushu = []
# for i in range(2,100):
#     for j in range(2,i):
#         if i%j==0:
#             break
#     else:
#         sushu.append(i)
# print(sushu)


# 9.如果两个素数之差为2, 这样的两个素数就叫作"孪生数", 找出100以内的所有"孪生数"
# luanshengshu = []
# for i in range(2,100):
#     for j in range(2,i):
#         if i%j==0:
#             break
#         elif i-j==2 or j-i==2:
#             luanshengshu.append(i)
# print(luanshengshu)

# 10.随机生成一个 100 以内的整数，玩家共有 10 次机会开始游戏，输入猜测的数字。
# 如果猜小了，则提示:猜小了
# 如果猜大了，则提示:猜大了
# 猜对了，则提示:猜对了，并且结束游戏
# import random
# n = random.randint(1,100)
# count = 0
# while count < 10:
#     guess = int(input("请输入你的猜测："))
#     if guess < n:
#         print("猜小了")
#     elif guess > n:
#         print("猜大了")
#     else:
#         print("猜对了！恭喜你赢得了游戏！")
#         break
#     count += 1
# else:
#     print("游戏结束，没有猜到。")



# 11.让用户输入姓名,如果姓名已经存在,提示用户,如果姓名不存在,继续输入年龄,并存入列表里
# users = []  # 假设这是已存在的用户列表
# while True:
#         name = input("请输入姓名：")
#         if name in users:
#             print("姓名已存在")
#         else:
#             age = input("姓名不存在，请输入年龄：")
#             users.append((name, age))
#             print(f"用户{name} 年龄{age} 已添加。")
#             break
# print(users)


# 12.利用while循环,计算1-100之间数字的累加和,计算1-100之间偶数的累加和,计算1-100之间奇数的累加和
# sum_all= 0
# sum_even = 0
# sum_odd = 0
#
# i = 1
# while i <= 100:
#     sum_all += i
#     if i % 2 == 0:
#         sum_even += i
#     else:
#         sum_odd += i
#     i += 1
#
# print("1-100之间数字的累加和:", sum_all)
# print("1-100之间偶数的累加和:", sum_even)
# print("1-100之间奇数的累加和:", sum_odd)

# 13.字符分类统计，输入一个字符串，分别统计字母、数字、下划线、其他字符的统计结果

# input_str = input("请输入一个字符串：")
# letter_count = 0
# digit_count = 0
# underline_count = 0
# other_count = 0
#
# for i in input_str:
#     if 'a' <= i <= 'z' or 'A' <= i <= 'Z':
#         letter_count += 1
#     elif '1' <= i <= '9':
#         digit_count += 1
#     elif i == '_':
#         underline_count += 1
#     else:
#         other_count += 1
#
# print("字母数量:", letter_count)
# print("数字数量:", digit_count)
# print("下划线数量:", underline_count)
# print("其他字符数量:", other_count)



# # 14.打印一个99乘法表
# for i in range(1, 10):
#     for j in range(1, i + 1):
#         print(f"{j}x{i}={i * j}", end="\t")
#     print()

# 14.计算一个正整数n的阶乘
# n = int(input("请输入一个正整数: "))
# jiecheng = 1
# for i in range(1, n + 1):
#      jiecheng *= i
# print("阶乘为:", jiecheng)

# 15.生成一个一百以内的斐波那契数列数列
# a, b = 0, 1
# while a <= 100:
#     print(a, end=' ')
#     a, b = b, a + b
    



